package edu.gatech.oad.mule.config.interfaces;
import edu.gatech.oad.mule.config.PlayerData;



/**
 * This class mimics the main GUI for the configuration screen.  It 
 * is used for testing purposes to mimic actual valid data being
 * passed through the class to other classes.
 * 
 * @author Brendan McGarry, Dale Avery, D'Miria Collins, Natasha Parekh, Jaemin Park
 * @version %I%, %G%
 */
public interface _ConfigurationPanel{
	/**
	 * @return The level of difficulty currently selected
	 */
	public String getDifficulty();

	/**
	 * @return The type of map selected
	 */
	public String getMap();

	/**
	 * @return The number of players currently selected
	 */
	public int getNumberOfPlayers();

	/**
	 * @return An array of the player's configuration data (color, name, etc).
	 * row 0 corresponds to the player 1's data, row 1 corresponds to player 2's
	 * data, etc.  The table structure looks like this:
	 *
	 * p1.playerData = p1.name	p1.race		p1.color	p1.input_device
	 * p2.playerData = p2.name	p2.race		p2.color	p2.input_device
	 * p3.playerData = p3.name	p3.race		p3.color	p3.input_device
	 * ...		...		...		...
	 * pn.playerData = pn.name	pn.race		pn.color	pn.input_device
	 *
	 */
	public PlayerData[] getPlayerData();

	/**
	 * @param whichPlayer An integer value that corresponds to the desired
	 * player's data.  0 corresponds to the first player, 1 corresponds to 
	 * the second player, 1 corresponds to the third, etc
	 *
	 * @return a specific player's configuration data. 
	 */
	public PlayerData getPlayerData(int whichPlayer);

}//end interface _ConfigurationPanel
